{
  "cells": [
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "kBRw5QHhBkax"
      },
      "source": [
        "# 数据集导入(预制链接)"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "gaD7ugivEL2R"
      },
      "source": [
        "## 官方版本数据导入"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "z0Sek0wtEs5n"
      },
      "source": [
        "## 百度Baseline版本数据导入"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "kY81z-fCgPfK"
      },
      "source": [
        "## 自定义导入(在下面代码块导入并解压您的数据集)"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "ITzT8s2wgZG0"
      },
      "source": []
    },
    {
      "cell_type": "code",
      "execution_count": 1,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "3fwo6QSa9VOK",
        "outputId": "3997844a-b3ab-4c6b-90ae-8bdde249a6db"
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "--2024-07-16 18:59:05--  https://drive.usercontent.google.com/download?id=1QxvQF-fZ9wwkex2_spoVUYpwkZpQDDkz&export=download&authuser=0&confirm=t&uuid=a48cba88-a618-4088-aa00-39ba639e85f7&at=APZUnTU1CpHVNb0ami3ZREXOv_3H%3A1720541656643\n",
            "Resolving drive.usercontent.google.com (drive.usercontent.google.com)... 172.217.203.132, 2607:f8b0:400c:c07::84\n",
            "Connecting to drive.usercontent.google.com (drive.usercontent.google.com)|172.217.203.132|:443... connected.\n",
            "HTTP request sent, awaiting response... 200 OK\n",
            "Length: 153300766 (146M) [application/octet-stream]\n",
            "Saving to: ‘trackA.zip’\n",
            "\n",
            "trackA.zip          100%[===================>] 146.20M  15.5MB/s    in 9.5s    \n",
            "\n",
            "2024-07-16 18:59:15 (15.5 MB/s) - ‘trackA.zip’ saved [153300766/153300766]\n",
            "\n",
            "--2024-07-16 18:59:15--  https://drive.usercontent.google.com/download?id=1tpZCLmN4isnoEwqGii_jONgbsgPk2jYN&export=download&authuser=0&confirm=t&uuid=4339ff97-9bd9-4d94-9179-d6a81bd2a561&at=APZUnTUCf6ZbVi4rM1_hj2UOgClS:1721150391349\n",
            "Resolving drive.usercontent.google.com (drive.usercontent.google.com)... 172.217.203.132, 2607:f8b0:400c:c07::84\n",
            "Connecting to drive.usercontent.google.com (drive.usercontent.google.com)|172.217.203.132|:443... connected.\n",
            "HTTP request sent, awaiting response... 200 OK\n",
            "Length: 103490 (101K) [application/octet-stream]\n",
            "Saving to: ‘trackAsrc.zip’\n",
            "\n",
            "trackAsrc.zip       100%[===================>] 101.06K  --.-KB/s    in 0.001s  \n",
            "\n",
            "2024-07-16 18:59:18 (87.5 MB/s) - ‘trackAsrc.zip’ saved [103490/103490]\n",
            "\n"
          ]
        }
      ],
      "source": [
        "!wget --no-check-certificate 'https://drive.usercontent.google.com/download?id=1QxvQF-fZ9wwkex2_spoVUYpwkZpQDDkz&export=download&authuser=0&confirm=t&uuid=a48cba88-a618-4088-aa00-39ba639e85f7&at=APZUnTU1CpHVNb0ami3ZREXOv_3H%3A1720541656643' -O trackA.zip"
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "!wget --no-check-certificate 'https://drive.usercontent.google.com/download?id=1jfzXLUCLeqoXVKJSBc2SfPAiZEAXxWLK&export=download&authuser=0&confirm=t&uuid=93a5dcc6-96ac-4f7b-bc02-ccf3aa894ee7&at=APZUnTU9ldCpTlTMTs2ey3PT4zlZ%3A1721039992443' -O trackAsrc.zip"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "xnLf98jS66rZ",
        "outputId": "14fa8698-89d8-4c27-bba0-1a8ddea69063"
      },
      "execution_count": 4,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "--2024-07-16 19:01:38--  https://drive.usercontent.google.com/download?id=1jfzXLUCLeqoXVKJSBc2SfPAiZEAXxWLK&export=download&authuser=0&confirm=t&uuid=93a5dcc6-96ac-4f7b-bc02-ccf3aa894ee7&at=APZUnTU9ldCpTlTMTs2ey3PT4zlZ%3A1721039992443\n",
            "Resolving drive.usercontent.google.com (drive.usercontent.google.com)... 172.217.203.132, 2607:f8b0:400c:c07::84\n",
            "Connecting to drive.usercontent.google.com (drive.usercontent.google.com)|172.217.203.132|:443... connected.\n",
            "HTTP request sent, awaiting response... 200 OK\n",
            "Length: 747796443 (713M) [application/octet-stream]\n",
            "Saving to: ‘trackAsrc.zip’\n",
            "\n",
            "trackAsrc.zip       100%[===================>] 713.15M  81.4MB/s    in 10s     \n",
            "\n",
            "2024-07-16 19:01:49 (68.4 MB/s) - ‘trackAsrc.zip’ saved [747796443/747796443]\n",
            "\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 5,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "Ro8u7xOc9VOK",
        "outputId": "bef9d4f8-bb91-44c3-b41b-1a8ee3e03d5f"
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Archive:  trackA.zip\n",
            "replace Datasets/pos_mean_std.txt? [y]es, [n]o, [A]ll, [N]one, [r]ename: Archive:  trackAsrc.zip\n",
            "   creating: Logger/\n",
            "   creating: Logger/net GM; hs 128;/\n",
            "   creating: Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/\n",
            "  inflating: Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/Loss_monitor.dat  \n",
            "   creating: Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/source/\n",
            "  inflating: Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/source/IJCAI_CarshapeNet_RACE.ipynb  \n",
            "   creating: Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/source/NN/\n",
            "   creating: Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/source/NN/GNN/\n",
            "   creating: Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/source/NN/GNN/FiniteVolumeGN/\n",
            "  inflating: Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/source/NN/GNN/FiniteVolumeGN/EPDbackbone.py  \n",
            "  inflating: Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/source/NN/GNN/FiniteVolumeGN/FVGN.py  \n",
            "   creating: Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/source/NN/GNN/FiniteVolumeGN/__pycache__/\n",
            "  inflating: Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/source/NN/GNN/FiniteVolumeGN/__pycache__/EPDbackbone.cpython-310.pyc  \n",
            "  inflating: Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/source/NN/GNN/FiniteVolumeGN/__pycache__/blocks.cpython-310.pyc  \n",
            "  inflating: Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/source/NN/GNN/FiniteVolumeGN/blocks.py  \n",
            "   creating: Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/source/NN/Model_importer/\n",
            "  inflating: Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/source/NN/Model_importer/FVGNAttUnet.py  \n",
            "  inflating: Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/source/NN/Model_importer/Importer.py  \n",
            "   creating: Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/source/NN/Model_importer/__pycache__/\n",
            "  inflating: Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/source/NN/Model_importer/__pycache__/FVGNAttUnet.cpython-310.pyc  \n",
            "  inflating: Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/source/NN/Model_importer/__pycache__/Importer.cpython-310.pyc  \n",
            "   creating: Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/source/NN/UNet/\n",
            "  inflating: Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/source/NN/UNet/BuildingBlocks.py  \n",
            "  inflating: Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/source/NN/UNet/Model.py  \n",
            "  inflating: Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/source/NN/UNet/Unet_GINO.py  \n",
            "   creating: Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/source/NN/UNet/__pycache__/\n",
            "  inflating: Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/source/NN/UNet/__pycache__/BuildingBlocks.cpython-310.pyc  \n",
            "  inflating: Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/source/NN/UNet/__pycache__/attention_unet.cpython-310.pyc  \n",
            "  inflating: Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/source/NN/UNet/__pycache__/unet_parts.cpython-310.pyc  \n",
            "  inflating: Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/source/NN/UNet/attention_unet.py  \n",
            "  inflating: Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/source/NN/UNet/unet_model.py  \n",
            "  inflating: Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/source/NN/UNet/unet_parts.py  \n",
            "  inflating: Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/source/NN/__init__.py  \n",
            "   creating: Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/source/NN/__pycache__/\n",
            "  inflating: Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/source/NN/__pycache__/__init__.cpython-310.pyc  \n",
            "   creating: Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/source/dataset/\n",
            "  inflating: Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/source/dataset/Load_mesh.py  \n",
            " extracting: Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/source/dataset/__init__.py  \n",
            "   creating: Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/source/dataset/__pycache__/\n",
            "  inflating: Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/source/dataset/__pycache__/Load_mesh.cpython-310.pyc  \n",
            "  inflating: Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/source/dataset/__pycache__/__init__.cpython-310.pyc  \n",
            "  inflating: Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/source/gen_answer_attn.py  \n",
            "  inflating: Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/source/requirements.txt  \n",
            "  inflating: Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/source/train_attn.py  \n",
            "   creating: Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/source/utils/\n",
            "  inflating: Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/source/utils/DS_utils.py  \n",
            "  inflating: Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/source/utils/Logger.py  \n",
            " extracting: Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/source/utils/__init__.py  \n",
            "   creating: Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/source/utils/__pycache__/\n",
            "  inflating: Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/source/utils/__pycache__/DS_utils.cpython-310.pyc  \n",
            "  inflating: Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/source/utils/__pycache__/Logger.cpython-310.pyc  \n",
            "  inflating: Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/source/utils/__pycache__/__init__.cpython-310.pyc  \n",
            "  inflating: Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/source/utils/__pycache__/get_param.cpython-310.pyc  \n",
            "  inflating: Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/source/utils/__pycache__/losses.cpython-310.pyc  \n",
            "  inflating: Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/source/utils/__pycache__/normalization.cpython-310.pyc  \n",
            "  inflating: Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/source/utils/__pycache__/scheduler.cpython-310.pyc  \n",
            "  inflating: Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/source/utils/__pycache__/utilities.cpython-310.pyc  \n",
            "  inflating: Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/source/utils/get_param.py  \n",
            "  inflating: Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/source/utils/losses.py  \n",
            "  inflating: Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/source/utils/normalization.py  \n",
            "  inflating: Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/source/utils/scheduler.py  \n",
            "  inflating: Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/source/utils/utilities.py  \n",
            "   creating: Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/states/\n",
            "  inflating: Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/states/130.state  \n",
            "  inflating: Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/states/commandline_args.json  \n",
            "  inflating: Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/test_log.txt  \n",
            "replace NN/GNN/FiniteVolumeGN/EPDbackbone.py? [y]es, [n]o, [A]ll, [N]one, [r]ename: y\n",
            "  inflating: NN/GNN/FiniteVolumeGN/EPDbackbone.py  \n",
            "replace NN/GNN/FiniteVolumeGN/FVGN.py? [y]es, [n]o, [A]ll, [N]one, [r]ename: y\n",
            "  inflating: NN/GNN/FiniteVolumeGN/FVGN.py  \n",
            "replace NN/GNN/FiniteVolumeGN/__pycache__/EPDbackbone.cpython-310.pyc? [y]es, [n]o, [A]ll, [N]one, [r]ename: y\n",
            "  inflating: NN/GNN/FiniteVolumeGN/__pycache__/EPDbackbone.cpython-310.pyc  \n",
            "replace NN/GNN/FiniteVolumeGN/__pycache__/blocks.cpython-310.pyc? [y]es, [n]o, [A]ll, [N]one, [r]ename: y\n",
            "  inflating: NN/GNN/FiniteVolumeGN/__pycache__/blocks.cpython-310.pyc  \n",
            "replace NN/GNN/FiniteVolumeGN/blocks.py? [y]es, [n]o, [A]ll, [N]one, [r]ename: y\n",
            "  inflating: NN/GNN/FiniteVolumeGN/blocks.py  \n",
            "replace NN/Model_importer/FVGNAttUnet.py? [y]es, [n]o, [A]ll, [N]one, [r]ename: y\n",
            "  inflating: NN/Model_importer/FVGNAttUnet.py  \n",
            "replace NN/Model_importer/Importer.py? [y]es, [n]o, [A]ll, [N]one, [r]ename: y\n",
            "  inflating: NN/Model_importer/Importer.py  \n",
            "replace NN/Model_importer/__pycache__/FVGNAttUnet.cpython-310.pyc? [y]es, [n]o, [A]ll, [N]one, [r]ename: y\n",
            "  inflating: NN/Model_importer/__pycache__/FVGNAttUnet.cpython-310.pyc  \n",
            "replace NN/Model_importer/__pycache__/Importer.cpython-310.pyc? [y]es, [n]o, [A]ll, [N]one, [r]ename: yyyyyyy\n",
            "  inflating: NN/Model_importer/__pycache__/Importer.cpython-310.pyc  \n",
            "replace NN/UNet/BuildingBlocks.py? [y]es, [n]o, [A]ll, [N]one, [r]ename: y\n",
            "  inflating: NN/UNet/BuildingBlocks.py  \n",
            "replace NN/UNet/Model.py? [y]es, [n]o, [A]ll, [N]one, [r]ename: y\n",
            "  inflating: NN/UNet/Model.py        \n",
            "replace NN/UNet/Unet_GINO.py? [y]es, [n]o, [A]ll, [N]one, [r]ename: y\n",
            "  inflating: NN/UNet/Unet_GINO.py    \n",
            "replace NN/UNet/__pycache__/BuildingBlocks.cpython-310.pyc? [y]es, [n]o, [A]ll, [N]one, [r]ename: y\n",
            "  inflating: NN/UNet/__pycache__/BuildingBlocks.cpython-310.pyc  \n",
            "replace NN/UNet/__pycache__/attention_unet.cpython-310.pyc? [y]es, [n]o, [A]ll, [N]one, [r]ename: y\n",
            "  inflating: NN/UNet/__pycache__/attention_unet.cpython-310.pyc  \n",
            "replace NN/UNet/__pycache__/unet_parts.cpython-310.pyc? [y]es, [n]o, [A]ll, [N]one, [r]ename: y\n",
            "  inflating: NN/UNet/__pycache__/unet_parts.cpython-310.pyc  \n",
            "replace NN/UNet/attention_unet.py? [y]es, [n]o, [A]ll, [N]one, [r]ename: y\n",
            "  inflating: NN/UNet/attention_unet.py  \n",
            "replace NN/UNet/unet_model.py? [y]es, [n]o, [A]ll, [N]one, [r]ename: y\n",
            "  inflating: NN/UNet/unet_model.py   \n",
            "replace NN/UNet/unet_parts.py? [y]es, [n]o, [A]ll, [N]one, [r]ename: y\n",
            "  inflating: NN/UNet/unet_parts.py   \n",
            "replace NN/__init__.py? [y]es, [n]o, [A]ll, [N]one, [r]ename: y\n",
            "  inflating: NN/__init__.py          \n",
            "replace NN/__pycache__/__init__.cpython-310.pyc? [y]es, [n]o, [A]ll, [N]one, [r]ename: y\n",
            "  inflating: NN/__pycache__/__init__.cpython-310.pyc  \n",
            "replace dataset/Load_mesh.py? [y]es, [n]o, [A]ll, [N]one, [r]ename: y\n",
            "  inflating: dataset/Load_mesh.py    \n",
            "replace dataset/__init__.py? [y]es, [n]o, [A]ll, [N]one, [r]ename: y\n",
            " extracting: dataset/__init__.py     \n",
            "replace dataset/__pycache__/Load_mesh.cpython-310.pyc? [y]es, [n]o, [A]ll, [N]one, [r]ename: y\n",
            "  inflating: dataset/__pycache__/Load_mesh.cpython-310.pyc  \n",
            "replace dataset/__pycache__/__init__.cpython-310.pyc? [y]es, [n]o, [A]ll, [N]one, [r]ename: a\n",
            "error:  invalid response [a]\n",
            "replace dataset/__pycache__/__init__.cpython-310.pyc? [y]es, [n]o, [A]ll, [N]one, [r]ename: A\n",
            "  inflating: dataset/__pycache__/__init__.cpython-310.pyc  \n",
            "  inflating: requirements.txt        \n",
            "  inflating: utils/DS_utils.py       \n",
            "  inflating: utils/Logger.py         \n",
            " extracting: utils/__init__.py       \n",
            "  inflating: utils/__pycache__/DS_utils.cpython-310.pyc  \n",
            "  inflating: utils/__pycache__/Logger.cpython-310.pyc  \n",
            "  inflating: utils/__pycache__/__init__.cpython-310.pyc  \n",
            "  inflating: utils/__pycache__/get_param.cpython-310.pyc  \n",
            "  inflating: utils/__pycache__/losses.cpython-310.pyc  \n",
            "  inflating: utils/__pycache__/normalization.cpython-310.pyc  \n",
            "  inflating: utils/__pycache__/scheduler.cpython-310.pyc  \n",
            "  inflating: utils/__pycache__/utilities.cpython-310.pyc  \n",
            "  inflating: utils/get_param.py      \n",
            "  inflating: utils/losses.py         \n",
            "  inflating: utils/normalization.py  \n",
            "  inflating: utils/scheduler.py      \n",
            "  inflating: utils/utilities.py      \n"
          ]
        }
      ],
      "source": [
        "# Unzip dataset file\n",
        "import os\n",
        "\n",
        "# 指定新文件夹的名称\n",
        "new_folder = 'Datasets'\n",
        "\n",
        "# 在当前目录下创建新文件夹\n",
        "if not os.path.exists(new_folder):\n",
        "    os.makedirs(new_folder)\n",
        "\n",
        "# 使用!unzip命令将文件解压到新文件夹中\n",
        "!unzip trackA.zip -d {new_folder}\n",
        "!unzip trackAsrc.zip"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "PmlOGK6yPVGu"
      },
      "source": [
        "# 包导入规范"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "_Mh7pXUyYOvl"
      },
      "source": [
        "## 直接导入(建议)"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "sRLfyacGYGcY"
      },
      "source": [
        "## 通过requirements.txt一次性导入"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 3,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "UcBIuri_9VOL",
        "outputId": "ec779e93-76a6-4d32-cc4a-6bc38d7781df"
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Collecting torch_geometric\n",
            "  Downloading torch_geometric-2.5.3-py3-none-any.whl (1.1 MB)\n",
            "\u001b[?25l     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m0.0/1.1 MB\u001b[0m \u001b[31m?\u001b[0m eta \u001b[36m-:--:--\u001b[0m\r\u001b[2K     \u001b[91m━━━━\u001b[0m\u001b[90m╺\u001b[0m\u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m0.1/1.1 MB\u001b[0m \u001b[31m3.5 MB/s\u001b[0m eta \u001b[36m0:00:01\u001b[0m\r\u001b[2K     \u001b[91m━━━━━━━━━━━━━━\u001b[0m\u001b[90m╺\u001b[0m\u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m0.4/1.1 MB\u001b[0m \u001b[31m5.5 MB/s\u001b[0m eta \u001b[36m0:00:01\u001b[0m\r\u001b[2K     \u001b[91m━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[91m╸\u001b[0m\u001b[90m━━━━━━━━━━━━━━━\u001b[0m \u001b[32m0.7/1.1 MB\u001b[0m \u001b[31m6.4 MB/s\u001b[0m eta \u001b[36m0:00:01\u001b[0m\r\u001b[2K     \u001b[91m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[91m╸\u001b[0m\u001b[90m━━━\u001b[0m \u001b[32m1.0/1.1 MB\u001b[0m \u001b[31m7.3 MB/s\u001b[0m eta \u001b[36m0:00:01\u001b[0m\r\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m1.1/1.1 MB\u001b[0m \u001b[31m6.9 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[?25hRequirement already satisfied: tqdm in /usr/local/lib/python3.10/dist-packages (from torch_geometric) (4.66.4)\n",
            "Requirement already satisfied: numpy in /usr/local/lib/python3.10/dist-packages (from torch_geometric) (1.25.2)\n",
            "Requirement already satisfied: scipy in /usr/local/lib/python3.10/dist-packages (from torch_geometric) (1.11.4)\n",
            "Requirement already satisfied: fsspec in /usr/local/lib/python3.10/dist-packages (from torch_geometric) (2023.6.0)\n",
            "Requirement already satisfied: jinja2 in /usr/local/lib/python3.10/dist-packages (from torch_geometric) (3.1.4)\n",
            "Requirement already satisfied: aiohttp in /usr/local/lib/python3.10/dist-packages (from torch_geometric) (3.9.5)\n",
            "Requirement already satisfied: requests in /usr/local/lib/python3.10/dist-packages (from torch_geometric) (2.31.0)\n",
            "Requirement already satisfied: pyparsing in /usr/local/lib/python3.10/dist-packages (from torch_geometric) (3.1.2)\n",
            "Requirement already satisfied: scikit-learn in /usr/local/lib/python3.10/dist-packages (from torch_geometric) (1.2.2)\n",
            "Requirement already satisfied: psutil>=5.8.0 in /usr/local/lib/python3.10/dist-packages (from torch_geometric) (5.9.5)\n",
            "Requirement already satisfied: aiosignal>=1.1.2 in /usr/local/lib/python3.10/dist-packages (from aiohttp->torch_geometric) (1.3.1)\n",
            "Requirement already satisfied: attrs>=17.3.0 in /usr/local/lib/python3.10/dist-packages (from aiohttp->torch_geometric) (23.2.0)\n",
            "Requirement already satisfied: frozenlist>=1.1.1 in /usr/local/lib/python3.10/dist-packages (from aiohttp->torch_geometric) (1.4.1)\n",
            "Requirement already satisfied: multidict<7.0,>=4.5 in /usr/local/lib/python3.10/dist-packages (from aiohttp->torch_geometric) (6.0.5)\n",
            "Requirement already satisfied: yarl<2.0,>=1.0 in /usr/local/lib/python3.10/dist-packages (from aiohttp->torch_geometric) (1.9.4)\n",
            "Requirement already satisfied: async-timeout<5.0,>=4.0 in /usr/local/lib/python3.10/dist-packages (from aiohttp->torch_geometric) (4.0.3)\n",
            "Requirement already satisfied: MarkupSafe>=2.0 in /usr/local/lib/python3.10/dist-packages (from jinja2->torch_geometric) (2.1.5)\n",
            "Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.10/dist-packages (from requests->torch_geometric) (3.3.2)\n",
            "Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/dist-packages (from requests->torch_geometric) (3.7)\n",
            "Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.10/dist-packages (from requests->torch_geometric) (2.0.7)\n",
            "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.10/dist-packages (from requests->torch_geometric) (2024.7.4)\n",
            "Requirement already satisfied: joblib>=1.1.1 in /usr/local/lib/python3.10/dist-packages (from scikit-learn->torch_geometric) (1.4.2)\n",
            "Requirement already satisfied: threadpoolctl>=2.0.0 in /usr/local/lib/python3.10/dist-packages (from scikit-learn->torch_geometric) (3.5.0)\n",
            "Installing collected packages: torch_geometric\n",
            "Successfully installed torch_geometric-2.5.3\n",
            "Looking in links: https://pytorch-geometric.com/whl/torch-2.3.0+cu121.html\n",
            "Collecting pyg_lib\n",
            "  Downloading https://data.pyg.org/whl/torch-2.3.0%2Bcu121/pyg_lib-0.4.0%2Bpt23cu121-cp310-cp310-linux_x86_64.whl (2.5 MB)\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m2.5/2.5 MB\u001b[0m \u001b[31m21.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[?25hCollecting torch_scatter\n",
            "  Downloading https://data.pyg.org/whl/torch-2.3.0%2Bcu121/torch_scatter-2.1.2%2Bpt23cu121-cp310-cp310-linux_x86_64.whl (10.9 MB)\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m10.9/10.9 MB\u001b[0m \u001b[31m89.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[?25hCollecting torch_sparse\n",
            "  Downloading https://data.pyg.org/whl/torch-2.3.0%2Bcu121/torch_sparse-0.6.18%2Bpt23cu121-cp310-cp310-linux_x86_64.whl (5.1 MB)\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m5.1/5.1 MB\u001b[0m \u001b[31m87.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[?25hCollecting torch_cluster\n",
            "  Downloading https://data.pyg.org/whl/torch-2.3.0%2Bcu121/torch_cluster-1.6.3%2Bpt23cu121-cp310-cp310-linux_x86_64.whl (3.4 MB)\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m3.4/3.4 MB\u001b[0m \u001b[31m91.9 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[?25hCollecting torch_spline_conv\n",
            "  Downloading https://data.pyg.org/whl/torch-2.3.0%2Bcu121/torch_spline_conv-1.2.2%2Bpt23cu121-cp310-cp310-linux_x86_64.whl (947 kB)\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m947.1/947.1 kB\u001b[0m \u001b[31m61.3 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[?25hRequirement already satisfied: scipy in /usr/local/lib/python3.10/dist-packages (from torch_sparse) (1.11.4)\n",
            "Requirement already satisfied: numpy<1.28.0,>=1.21.6 in /usr/local/lib/python3.10/dist-packages (from scipy->torch_sparse) (1.25.2)\n",
            "Installing collected packages: torch_spline_conv, torch_scatter, pyg_lib, torch_sparse, torch_cluster\n",
            "Successfully installed pyg_lib-0.4.0+pt23cu121 torch_cluster-1.6.3+pt23cu121 torch_scatter-2.1.2+pt23cu121 torch_sparse-0.6.18+pt23cu121 torch_spline_conv-1.2.2+pt23cu121\n",
            "Requirement already satisfied: absl-py in /usr/local/lib/python3.10/dist-packages (from -r requirements.txt (line 1)) (1.4.0)\n",
            "Collecting conda-pack (from -r requirements.txt (line 2))\n",
            "  Downloading conda_pack-0.8.0-py2.py3-none-any.whl (33 kB)\n",
            "Collecting GitPython (from -r requirements.txt (line 3))\n",
            "  Downloading GitPython-3.1.43-py3-none-any.whl (207 kB)\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m207.3/207.3 kB\u001b[0m \u001b[31m3.9 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[?25hRequirement already satisfied: h5py in /usr/local/lib/python3.10/dist-packages (from -r requirements.txt (line 4)) (3.9.0)\n",
            "Requirement already satisfied: keras in /usr/local/lib/python3.10/dist-packages (from -r requirements.txt (line 5)) (2.15.0)\n",
            "Requirement already satisfied: matplotlib in /usr/local/lib/python3.10/dist-packages (from -r requirements.txt (line 6)) (3.7.1)\n",
            "Requirement already satisfied: natsort in /usr/local/lib/python3.10/dist-packages (from -r requirements.txt (line 7)) (8.4.0)\n",
            "Requirement already satisfied: networkx in /usr/local/lib/python3.10/dist-packages (from -r requirements.txt (line 8)) (3.3)\n",
            "Requirement already satisfied: numpy in /usr/local/lib/python3.10/dist-packages (from -r requirements.txt (line 9)) (1.25.2)\n",
            "Requirement already satisfied: pandas in /usr/local/lib/python3.10/dist-packages (from -r requirements.txt (line 10)) (2.0.3)\n",
            "Requirement already satisfied: six in /usr/local/lib/python3.10/dist-packages (from -r requirements.txt (line 11)) (1.16.0)\n",
            "Requirement already satisfied: statsmodels in /usr/local/lib/python3.10/dist-packages (from -r requirements.txt (line 12)) (0.14.2)\n",
            "Requirement already satisfied: tensorboard in /usr/local/lib/python3.10/dist-packages (from -r requirements.txt (line 13)) (2.15.2)\n",
            "Collecting vtk (from -r requirements.txt (line 14))\n",
            "  Downloading vtk-9.3.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (92.1 MB)\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m92.1/92.1 MB\u001b[0m \u001b[31m17.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[?25hRequirement already satisfied: setuptools in /usr/local/lib/python3.10/dist-packages (from -r requirements.txt (line 15)) (67.7.2)\n",
            "Collecting pyvista (from -r requirements.txt (line 16))\n",
            "  Downloading pyvista-0.44.0-py3-none-any.whl (2.2 MB)\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m2.2/2.2 MB\u001b[0m \u001b[31m79.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[?25hCollecting trimesh (from -r requirements.txt (line 17))\n",
            "  Downloading trimesh-4.4.3-py3-none-any.whl (695 kB)\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m695.9/695.9 kB\u001b[0m \u001b[31m51.9 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[?25hCollecting circle_fit (from -r requirements.txt (line 18))\n",
            "  Downloading circle_fit-0.2.1-py3-none-any.whl (9.4 kB)\n",
            "Collecting torchtyping (from -r requirements.txt (line 19))\n",
            "  Downloading torchtyping-0.1.4-py3-none-any.whl (17 kB)\n",
            "Collecting wandb (from -r requirements.txt (line 20))\n",
            "  Downloading wandb-0.17.4-py3-none-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (6.9 MB)\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m6.9/6.9 MB\u001b[0m \u001b[31m97.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[?25hCollecting torch_harmonics (from -r requirements.txt (line 21))\n",
            "  Downloading torch_harmonics-0.6.5-py3-none-any.whl (63 kB)\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m63.6/63.6 kB\u001b[0m \u001b[31m7.9 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[?25hCollecting timm (from -r requirements.txt (line 22))\n",
            "  Downloading timm-1.0.7-py3-none-any.whl (2.3 MB)\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m2.3/2.3 MB\u001b[0m \u001b[31m78.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[?25hCollecting open3d (from -r requirements.txt (line 23))\n",
            "  Downloading open3d-0.18.0-cp310-cp310-manylinux_2_27_x86_64.whl (399.7 MB)\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m399.7/399.7 MB\u001b[0m \u001b[31m3.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[?25hCollecting rtree (from -r requirements.txt (line 24))\n",
            "  Downloading Rtree-1.3.0-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (543 kB)\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m543.2/543.2 kB\u001b[0m \u001b[31m45.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[?25hCollecting einops (from -r requirements.txt (line 25))\n",
            "  Downloading einops-0.8.0-py3-none-any.whl (43 kB)\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m43.2/43.2 kB\u001b[0m \u001b[31m5.5 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[?25hCollecting gitdb<5,>=4.0.1 (from GitPython->-r requirements.txt (line 3))\n",
            "  Downloading gitdb-4.0.11-py3-none-any.whl (62 kB)\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m62.7/62.7 kB\u001b[0m \u001b[31m8.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[?25hRequirement already satisfied: contourpy>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib->-r requirements.txt (line 6)) (1.2.1)\n",
            "Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.10/dist-packages (from matplotlib->-r requirements.txt (line 6)) (0.12.1)\n",
            "Requirement already satisfied: fonttools>=4.22.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib->-r requirements.txt (line 6)) (4.53.1)\n",
            "Requirement already satisfied: kiwisolver>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib->-r requirements.txt (line 6)) (1.4.5)\n",
            "Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib->-r requirements.txt (line 6)) (24.1)\n",
            "Requirement already satisfied: pillow>=6.2.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib->-r requirements.txt (line 6)) (9.4.0)\n",
            "Requirement already satisfied: pyparsing>=2.3.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib->-r requirements.txt (line 6)) (3.1.2)\n",
            "Requirement already satisfied: python-dateutil>=2.7 in /usr/local/lib/python3.10/dist-packages (from matplotlib->-r requirements.txt (line 6)) (2.8.2)\n",
            "Requirement already satisfied: pytz>=2020.1 in /usr/local/lib/python3.10/dist-packages (from pandas->-r requirements.txt (line 10)) (2023.4)\n",
            "Requirement already satisfied: tzdata>=2022.1 in /usr/local/lib/python3.10/dist-packages (from pandas->-r requirements.txt (line 10)) (2024.1)\n",
            "Requirement already satisfied: scipy!=1.9.2,>=1.8 in /usr/local/lib/python3.10/dist-packages (from statsmodels->-r requirements.txt (line 12)) (1.11.4)\n",
            "Requirement already satisfied: patsy>=0.5.6 in /usr/local/lib/python3.10/dist-packages (from statsmodels->-r requirements.txt (line 12)) (0.5.6)\n",
            "Requirement already satisfied: grpcio>=1.48.2 in /usr/local/lib/python3.10/dist-packages (from tensorboard->-r requirements.txt (line 13)) (1.64.1)\n",
            "Requirement already satisfied: google-auth<3,>=1.6.3 in /usr/local/lib/python3.10/dist-packages (from tensorboard->-r requirements.txt (line 13)) (2.27.0)\n",
            "Requirement already satisfied: google-auth-oauthlib<2,>=0.5 in /usr/local/lib/python3.10/dist-packages (from tensorboard->-r requirements.txt (line 13)) (1.2.1)\n",
            "Requirement already satisfied: markdown>=2.6.8 in /usr/local/lib/python3.10/dist-packages (from tensorboard->-r requirements.txt (line 13)) (3.6)\n",
            "Requirement already satisfied: protobuf!=4.24.0,>=3.19.6 in /usr/local/lib/python3.10/dist-packages (from tensorboard->-r requirements.txt (line 13)) (3.20.3)\n",
            "Requirement already satisfied: requests<3,>=2.21.0 in /usr/local/lib/python3.10/dist-packages (from tensorboard->-r requirements.txt (line 13)) (2.31.0)\n",
            "Requirement already satisfied: tensorboard-data-server<0.8.0,>=0.7.0 in /usr/local/lib/python3.10/dist-packages (from tensorboard->-r requirements.txt (line 13)) (0.7.2)\n",
            "Requirement already satisfied: werkzeug>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from tensorboard->-r requirements.txt (line 13)) (3.0.3)\n",
            "Requirement already satisfied: pooch in /usr/local/lib/python3.10/dist-packages (from pyvista->-r requirements.txt (line 16)) (1.8.2)\n",
            "Requirement already satisfied: scooby>=0.5.1 in /usr/local/lib/python3.10/dist-packages (from pyvista->-r requirements.txt (line 16)) (0.10.0)\n",
            "Requirement already satisfied: typing-extensions in /usr/local/lib/python3.10/dist-packages (from pyvista->-r requirements.txt (line 16)) (4.12.2)\n",
            "Requirement already satisfied: torch>=1.7.0 in /usr/local/lib/python3.10/dist-packages (from torchtyping->-r requirements.txt (line 19)) (2.3.0+cu121)\n",
            "Collecting typeguard>=2.11.1 (from torchtyping->-r requirements.txt (line 19))\n",
            "  Downloading typeguard-4.3.0-py3-none-any.whl (35 kB)\n",
            "Requirement already satisfied: click!=8.0.0,>=7.1 in /usr/local/lib/python3.10/dist-packages (from wandb->-r requirements.txt (line 20)) (8.1.7)\n",
            "Collecting docker-pycreds>=0.4.0 (from wandb->-r requirements.txt (line 20))\n",
            "  Downloading docker_pycreds-0.4.0-py2.py3-none-any.whl (9.0 kB)\n",
            "Requirement already satisfied: platformdirs in /usr/local/lib/python3.10/dist-packages (from wandb->-r requirements.txt (line 20)) (4.2.2)\n",
            "Requirement already satisfied: psutil>=5.0.0 in /usr/local/lib/python3.10/dist-packages (from wandb->-r requirements.txt (line 20)) (5.9.5)\n",
            "Requirement already satisfied: pyyaml in /usr/local/lib/python3.10/dist-packages (from wandb->-r requirements.txt (line 20)) (6.0.1)\n",
            "Collecting sentry-sdk>=1.0.0 (from wandb->-r requirements.txt (line 20))\n",
            "  Downloading sentry_sdk-2.10.0-py2.py3-none-any.whl (302 kB)\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m302.1/302.1 kB\u001b[0m \u001b[31m31.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[?25hCollecting setproctitle (from wandb->-r requirements.txt (line 20))\n",
            "  Downloading setproctitle-1.3.3-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (30 kB)\n",
            "Requirement already satisfied: triton in /usr/local/lib/python3.10/dist-packages (from torch_harmonics->-r requirements.txt (line 21)) (2.3.0)\n",
            "Requirement already satisfied: torchvision in /usr/local/lib/python3.10/dist-packages (from timm->-r requirements.txt (line 22)) (0.18.0+cu121)\n",
            "Requirement already satisfied: huggingface_hub in /usr/local/lib/python3.10/dist-packages (from timm->-r requirements.txt (line 22)) (0.23.4)\n",
            "Requirement already satisfied: safetensors in /usr/local/lib/python3.10/dist-packages (from timm->-r requirements.txt (line 22)) (0.4.3)\n",
            "Collecting dash>=2.6.0 (from open3d->-r requirements.txt (line 23))\n",
            "  Downloading dash-2.17.1-py3-none-any.whl (7.5 MB)\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m7.5/7.5 MB\u001b[0m \u001b[31m95.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[?25hRequirement already satisfied: nbformat>=5.7.0 in /usr/local/lib/python3.10/dist-packages (from open3d->-r requirements.txt (line 23)) (5.10.4)\n",
            "Collecting configargparse (from open3d->-r requirements.txt (line 23))\n",
            "  Downloading ConfigArgParse-1.7-py3-none-any.whl (25 kB)\n",
            "Collecting ipywidgets>=8.0.4 (from open3d->-r requirements.txt (line 23))\n",
            "  Downloading ipywidgets-8.1.3-py3-none-any.whl (139 kB)\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m139.4/139.4 kB\u001b[0m \u001b[31m16.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[?25hCollecting addict (from open3d->-r requirements.txt (line 23))\n",
            "  Downloading addict-2.4.0-py3-none-any.whl (3.8 kB)\n",
            "Requirement already satisfied: scikit-learn>=0.21 in /usr/local/lib/python3.10/dist-packages (from open3d->-r requirements.txt (line 23)) (1.2.2)\n",
            "Requirement already satisfied: tqdm in /usr/local/lib/python3.10/dist-packages (from open3d->-r requirements.txt (line 23)) (4.66.4)\n",
            "Collecting pyquaternion (from open3d->-r requirements.txt (line 23))\n",
            "  Downloading pyquaternion-0.9.9-py3-none-any.whl (14 kB)\n",
            "Requirement already satisfied: Flask<3.1,>=1.0.4 in /usr/local/lib/python3.10/dist-packages (from dash>=2.6.0->open3d->-r requirements.txt (line 23)) (2.2.5)\n",
            "Requirement already satisfied: plotly>=5.0.0 in /usr/local/lib/python3.10/dist-packages (from dash>=2.6.0->open3d->-r requirements.txt (line 23)) (5.15.0)\n",
            "Collecting dash-html-components==2.0.0 (from dash>=2.6.0->open3d->-r requirements.txt (line 23))\n",
            "  Downloading dash_html_components-2.0.0-py3-none-any.whl (4.1 kB)\n",
            "Collecting dash-core-components==2.0.0 (from dash>=2.6.0->open3d->-r requirements.txt (line 23))\n",
            "  Downloading dash_core_components-2.0.0-py3-none-any.whl (3.8 kB)\n",
            "Collecting dash-table==5.0.0 (from dash>=2.6.0->open3d->-r requirements.txt (line 23))\n",
            "  Downloading dash_table-5.0.0-py3-none-any.whl (3.9 kB)\n",
            "Requirement already satisfied: importlib-metadata in /usr/local/lib/python3.10/dist-packages (from dash>=2.6.0->open3d->-r requirements.txt (line 23)) (8.0.0)\n",
            "Collecting retrying (from dash>=2.6.0->open3d->-r requirements.txt (line 23))\n",
            "  Downloading retrying-1.3.4-py3-none-any.whl (11 kB)\n",
            "Requirement already satisfied: nest-asyncio in /usr/local/lib/python3.10/dist-packages (from dash>=2.6.0->open3d->-r requirements.txt (line 23)) (1.6.0)\n",
            "Collecting smmap<6,>=3.0.1 (from gitdb<5,>=4.0.1->GitPython->-r requirements.txt (line 3))\n",
            "  Downloading smmap-5.0.1-py3-none-any.whl (24 kB)\n",
            "Requirement already satisfied: cachetools<6.0,>=2.0.0 in /usr/local/lib/python3.10/dist-packages (from google-auth<3,>=1.6.3->tensorboard->-r requirements.txt (line 13)) (5.3.3)\n",
            "Requirement already satisfied: pyasn1-modules>=0.2.1 in /usr/local/lib/python3.10/dist-packages (from google-auth<3,>=1.6.3->tensorboard->-r requirements.txt (line 13)) (0.4.0)\n",
            "Requirement already satisfied: rsa<5,>=3.1.4 in /usr/local/lib/python3.10/dist-packages (from google-auth<3,>=1.6.3->tensorboard->-r requirements.txt (line 13)) (4.9)\n",
            "Requirement already satisfied: requests-oauthlib>=0.7.0 in /usr/local/lib/python3.10/dist-packages (from google-auth-oauthlib<2,>=0.5->tensorboard->-r requirements.txt (line 13)) (1.3.1)\n",
            "Collecting comm>=0.1.3 (from ipywidgets>=8.0.4->open3d->-r requirements.txt (line 23))\n",
            "  Downloading comm-0.2.2-py3-none-any.whl (7.2 kB)\n",
            "Requirement already satisfied: ipython>=6.1.0 in /usr/local/lib/python3.10/dist-packages (from ipywidgets>=8.0.4->open3d->-r requirements.txt (line 23)) (7.34.0)\n",
            "Requirement already satisfied: traitlets>=4.3.1 in /usr/local/lib/python3.10/dist-packages (from ipywidgets>=8.0.4->open3d->-r requirements.txt (line 23)) (5.7.1)\n",
            "Collecting widgetsnbextension~=4.0.11 (from ipywidgets>=8.0.4->open3d->-r requirements.txt (line 23))\n",
            "  Downloading widgetsnbextension-4.0.11-py3-none-any.whl (2.3 MB)\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m2.3/2.3 MB\u001b[0m \u001b[31m85.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[?25hRequirement already satisfied: jupyterlab-widgets~=3.0.11 in /usr/local/lib/python3.10/dist-packages (from ipywidgets>=8.0.4->open3d->-r requirements.txt (line 23)) (3.0.11)\n",
            "Requirement already satisfied: fastjsonschema>=2.15 in /usr/local/lib/python3.10/dist-packages (from nbformat>=5.7.0->open3d->-r requirements.txt (line 23)) (2.20.0)\n",
            "Requirement already satisfied: jsonschema>=2.6 in /usr/local/lib/python3.10/dist-packages (from nbformat>=5.7.0->open3d->-r requirements.txt (line 23)) (4.19.2)\n",
            "Requirement already satisfied: jupyter-core!=5.0.*,>=4.12 in /usr/local/lib/python3.10/dist-packages (from nbformat>=5.7.0->open3d->-r requirements.txt (line 23)) (5.7.2)\n",
            "Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.10/dist-packages (from requests<3,>=2.21.0->tensorboard->-r requirements.txt (line 13)) (3.3.2)\n",
            "Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/dist-packages (from requests<3,>=2.21.0->tensorboard->-r requirements.txt (line 13)) (3.7)\n",
            "Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.10/dist-packages (from requests<3,>=2.21.0->tensorboard->-r requirements.txt (line 13)) (2.0.7)\n",
            "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.10/dist-packages (from requests<3,>=2.21.0->tensorboard->-r requirements.txt (line 13)) (2024.7.4)\n",
            "Requirement already satisfied: joblib>=1.1.1 in /usr/local/lib/python3.10/dist-packages (from scikit-learn>=0.21->open3d->-r requirements.txt (line 23)) (1.4.2)\n",
            "Requirement already satisfied: threadpoolctl>=2.0.0 in /usr/local/lib/python3.10/dist-packages (from scikit-learn>=0.21->open3d->-r requirements.txt (line 23)) (3.5.0)\n",
            "Requirement already satisfied: filelock in /usr/local/lib/python3.10/dist-packages (from torch>=1.7.0->torchtyping->-r requirements.txt (line 19)) (3.15.4)\n",
            "Requirement already satisfied: sympy in /usr/local/lib/python3.10/dist-packages (from torch>=1.7.0->torchtyping->-r requirements.txt (line 19)) (1.13.0)\n",
            "Requirement already satisfied: jinja2 in /usr/local/lib/python3.10/dist-packages (from torch>=1.7.0->torchtyping->-r requirements.txt (line 19)) (3.1.4)\n",
            "Requirement already satisfied: fsspec in /usr/local/lib/python3.10/dist-packages (from torch>=1.7.0->torchtyping->-r requirements.txt (line 19)) (2023.6.0)\n",
            "Collecting nvidia-cuda-nvrtc-cu12==12.1.105 (from torch>=1.7.0->torchtyping->-r requirements.txt (line 19))\n",
            "  Using cached nvidia_cuda_nvrtc_cu12-12.1.105-py3-none-manylinux1_x86_64.whl (23.7 MB)\n",
            "Collecting nvidia-cuda-runtime-cu12==12.1.105 (from torch>=1.7.0->torchtyping->-r requirements.txt (line 19))\n",
            "  Using cached nvidia_cuda_runtime_cu12-12.1.105-py3-none-manylinux1_x86_64.whl (823 kB)\n",
            "Collecting nvidia-cuda-cupti-cu12==12.1.105 (from torch>=1.7.0->torchtyping->-r requirements.txt (line 19))\n",
            "  Using cached nvidia_cuda_cupti_cu12-12.1.105-py3-none-manylinux1_x86_64.whl (14.1 MB)\n",
            "Collecting nvidia-cudnn-cu12==8.9.2.26 (from torch>=1.7.0->torchtyping->-r requirements.txt (line 19))\n",
            "  Using cached nvidia_cudnn_cu12-8.9.2.26-py3-none-manylinux1_x86_64.whl (731.7 MB)\n",
            "Collecting nvidia-cublas-cu12==12.1.3.1 (from torch>=1.7.0->torchtyping->-r requirements.txt (line 19))\n",
            "  Using cached nvidia_cublas_cu12-12.1.3.1-py3-none-manylinux1_x86_64.whl (410.6 MB)\n",
            "Collecting nvidia-cufft-cu12==11.0.2.54 (from torch>=1.7.0->torchtyping->-r requirements.txt (line 19))\n",
            "  Using cached nvidia_cufft_cu12-11.0.2.54-py3-none-manylinux1_x86_64.whl (121.6 MB)\n",
            "Collecting nvidia-curand-cu12==10.3.2.106 (from torch>=1.7.0->torchtyping->-r requirements.txt (line 19))\n",
            "  Using cached nvidia_curand_cu12-10.3.2.106-py3-none-manylinux1_x86_64.whl (56.5 MB)\n",
            "Collecting nvidia-cusolver-cu12==11.4.5.107 (from torch>=1.7.0->torchtyping->-r requirements.txt (line 19))\n",
            "  Using cached nvidia_cusolver_cu12-11.4.5.107-py3-none-manylinux1_x86_64.whl (124.2 MB)\n",
            "Collecting nvidia-cusparse-cu12==12.1.0.106 (from torch>=1.7.0->torchtyping->-r requirements.txt (line 19))\n",
            "  Using cached nvidia_cusparse_cu12-12.1.0.106-py3-none-manylinux1_x86_64.whl (196.0 MB)\n",
            "Collecting nvidia-nccl-cu12==2.20.5 (from torch>=1.7.0->torchtyping->-r requirements.txt (line 19))\n",
            "  Using cached nvidia_nccl_cu12-2.20.5-py3-none-manylinux2014_x86_64.whl (176.2 MB)\n",
            "Collecting nvidia-nvtx-cu12==12.1.105 (from torch>=1.7.0->torchtyping->-r requirements.txt (line 19))\n",
            "  Using cached nvidia_nvtx_cu12-12.1.105-py3-none-manylinux1_x86_64.whl (99 kB)\n",
            "Collecting nvidia-nvjitlink-cu12 (from nvidia-cusolver-cu12==11.4.5.107->torch>=1.7.0->torchtyping->-r requirements.txt (line 19))\n",
            "  Downloading nvidia_nvjitlink_cu12-12.5.82-py3-none-manylinux2014_x86_64.whl (21.3 MB)\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m21.3/21.3 MB\u001b[0m \u001b[31m62.5 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[?25hRequirement already satisfied: MarkupSafe>=2.1.1 in /usr/local/lib/python3.10/dist-packages (from werkzeug>=1.0.1->tensorboard->-r requirements.txt (line 13)) (2.1.5)\n",
            "Requirement already satisfied: itsdangerous>=2.0 in /usr/local/lib/python3.10/dist-packages (from Flask<3.1,>=1.0.4->dash>=2.6.0->open3d->-r requirements.txt (line 23)) (2.2.0)\n",
            "Collecting jedi>=0.16 (from ipython>=6.1.0->ipywidgets>=8.0.4->open3d->-r requirements.txt (line 23))\n",
            "  Downloading jedi-0.19.1-py2.py3-none-any.whl (1.6 MB)\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m1.6/1.6 MB\u001b[0m \u001b[31m77.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[?25hRequirement already satisfied: decorator in /usr/local/lib/python3.10/dist-packages (from ipython>=6.1.0->ipywidgets>=8.0.4->open3d->-r requirements.txt (line 23)) (4.4.2)\n",
            "Requirement already satisfied: pickleshare in /usr/local/lib/python3.10/dist-packages (from ipython>=6.1.0->ipywidgets>=8.0.4->open3d->-r requirements.txt (line 23)) (0.7.5)\n",
            "Requirement already satisfied: prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0 in /usr/local/lib/python3.10/dist-packages (from ipython>=6.1.0->ipywidgets>=8.0.4->open3d->-r requirements.txt (line 23)) (3.0.47)\n",
            "Requirement already satisfied: pygments in /usr/local/lib/python3.10/dist-packages (from ipython>=6.1.0->ipywidgets>=8.0.4->open3d->-r requirements.txt (line 23)) (2.16.1)\n",
            "Requirement already satisfied: backcall in /usr/local/lib/python3.10/dist-packages (from ipython>=6.1.0->ipywidgets>=8.0.4->open3d->-r requirements.txt (line 23)) (0.2.0)\n",
            "Requirement already satisfied: matplotlib-inline in /usr/local/lib/python3.10/dist-packages (from ipython>=6.1.0->ipywidgets>=8.0.4->open3d->-r requirements.txt (line 23)) (0.1.7)\n",
            "Requirement already satisfied: pexpect>4.3 in /usr/local/lib/python3.10/dist-packages (from ipython>=6.1.0->ipywidgets>=8.0.4->open3d->-r requirements.txt (line 23)) (4.9.0)\n",
            "Requirement already satisfied: attrs>=22.2.0 in /usr/local/lib/python3.10/dist-packages (from jsonschema>=2.6->nbformat>=5.7.0->open3d->-r requirements.txt (line 23)) (23.2.0)\n",
            "Requirement already satisfied: jsonschema-specifications>=2023.03.6 in /usr/local/lib/python3.10/dist-packages (from jsonschema>=2.6->nbformat>=5.7.0->open3d->-r requirements.txt (line 23)) (2023.12.1)\n",
            "Requirement already satisfied: referencing>=0.28.4 in /usr/local/lib/python3.10/dist-packages (from jsonschema>=2.6->nbformat>=5.7.0->open3d->-r requirements.txt (line 23)) (0.35.1)\n",
            "Requirement already satisfied: rpds-py>=0.7.1 in /usr/local/lib/python3.10/dist-packages (from jsonschema>=2.6->nbformat>=5.7.0->open3d->-r requirements.txt (line 23)) (0.19.0)\n",
            "Requirement already satisfied: tenacity>=6.2.0 in /usr/local/lib/python3.10/dist-packages (from plotly>=5.0.0->dash>=2.6.0->open3d->-r requirements.txt (line 23)) (8.5.0)\n",
            "Requirement already satisfied: pyasn1<0.7.0,>=0.4.6 in /usr/local/lib/python3.10/dist-packages (from pyasn1-modules>=0.2.1->google-auth<3,>=1.6.3->tensorboard->-r requirements.txt (line 13)) (0.6.0)\n",
            "Requirement already satisfied: oauthlib>=3.0.0 in /usr/local/lib/python3.10/dist-packages (from requests-oauthlib>=0.7.0->google-auth-oauthlib<2,>=0.5->tensorboard->-r requirements.txt (line 13)) (3.2.2)\n",
            "Requirement already satisfied: zipp>=0.5 in /usr/local/lib/python3.10/dist-packages (from importlib-metadata->dash>=2.6.0->open3d->-r requirements.txt (line 23)) (3.19.2)\n",
            "Requirement already satisfied: mpmath<1.4,>=1.1.0 in /usr/local/lib/python3.10/dist-packages (from sympy->torch>=1.7.0->torchtyping->-r requirements.txt (line 19)) (1.3.0)\n",
            "Requirement already satisfied: parso<0.9.0,>=0.8.3 in /usr/local/lib/python3.10/dist-packages (from jedi>=0.16->ipython>=6.1.0->ipywidgets>=8.0.4->open3d->-r requirements.txt (line 23)) (0.8.4)\n",
            "Requirement already satisfied: ptyprocess>=0.5 in /usr/local/lib/python3.10/dist-packages (from pexpect>4.3->ipython>=6.1.0->ipywidgets>=8.0.4->open3d->-r requirements.txt (line 23)) (0.7.0)\n",
            "Requirement already satisfied: wcwidth in /usr/local/lib/python3.10/dist-packages (from prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0->ipython>=6.1.0->ipywidgets>=8.0.4->open3d->-r requirements.txt (line 23)) (0.2.13)\n",
            "Installing collected packages: dash-table, dash-html-components, dash-core-components, addict, widgetsnbextension, typeguard, trimesh, smmap, setproctitle, sentry-sdk, rtree, retrying, pyquaternion, nvidia-nvtx-cu12, nvidia-nvjitlink-cu12, nvidia-nccl-cu12, nvidia-curand-cu12, nvidia-cufft-cu12, nvidia-cuda-runtime-cu12, nvidia-cuda-nvrtc-cu12, nvidia-cuda-cupti-cu12, nvidia-cublas-cu12, jedi, einops, docker-pycreds, configargparse, conda-pack, comm, nvidia-cusparse-cu12, nvidia-cudnn-cu12, gitdb, circle_fit, vtk, nvidia-cusolver-cu12, ipywidgets, GitPython, dash, wandb, pyvista, torchtyping, torch_harmonics, open3d, timm\n",
            "  Attempting uninstall: widgetsnbextension\n",
            "    Found existing installation: widgetsnbextension 3.6.7\n",
            "    Uninstalling widgetsnbextension-3.6.7:\n",
            "      Successfully uninstalled widgetsnbextension-3.6.7\n",
            "  Attempting uninstall: ipywidgets\n",
            "    Found existing installation: ipywidgets 7.7.1\n",
            "    Uninstalling ipywidgets-7.7.1:\n",
            "      Successfully uninstalled ipywidgets-7.7.1\n",
            "Successfully installed GitPython-3.1.43 addict-2.4.0 circle_fit-0.2.1 comm-0.2.2 conda-pack-0.8.0 configargparse-1.7 dash-2.17.1 dash-core-components-2.0.0 dash-html-components-2.0.0 dash-table-5.0.0 docker-pycreds-0.4.0 einops-0.8.0 gitdb-4.0.11 ipywidgets-8.1.3 jedi-0.19.1 nvidia-cublas-cu12-12.1.3.1 nvidia-cuda-cupti-cu12-12.1.105 nvidia-cuda-nvrtc-cu12-12.1.105 nvidia-cuda-runtime-cu12-12.1.105 nvidia-cudnn-cu12-8.9.2.26 nvidia-cufft-cu12-11.0.2.54 nvidia-curand-cu12-10.3.2.106 nvidia-cusolver-cu12-11.4.5.107 nvidia-cusparse-cu12-12.1.0.106 nvidia-nccl-cu12-2.20.5 nvidia-nvjitlink-cu12-12.5.82 nvidia-nvtx-cu12-12.1.105 open3d-0.18.0 pyquaternion-0.9.9 pyvista-0.44.0 retrying-1.3.4 rtree-1.3.0 sentry-sdk-2.10.0 setproctitle-1.3.3 smmap-5.0.1 timm-1.0.7 torch_harmonics-0.6.5 torchtyping-0.1.4 trimesh-4.4.3 typeguard-4.3.0 vtk-9.3.1 wandb-0.17.4 widgetsnbextension-4.0.11\n"
          ]
        }
      ],
      "source": [
        "!pip install torch_geometric\n",
        "!pip install --no-index pyg_lib torch_scatter torch_sparse torch_cluster torch_spline_conv -f https://pytorch-geometric.com/whl/torch-2.3.0+cu121.html\n",
        "!pip install -r requirements.txt"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "DUxmPjWWV1sr"
      },
      "source": [
        "# 额外数据导入\n",
        "（此处导入权重文件和额外数据集，在此之外的导入将有被判违规的风险，这里以导入随机生成的Track C的A榜样例提交的zip为例子）"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "p7YDBByYeYsB"
      },
      "source": [
        "# 主要库版本检查以及随机种子锁定"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "MBCalHN7bBji"
      },
      "source": [
        "# 以C榜为例的输出规范\n",
        "(将答案文件夹压缩为B_result.zip,用于被程序识别，假设文件路径是Example_C)"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 6,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "XkQK8UDZ9VOL",
        "outputId": "fe51035b-7f33-4dac-ff66-5a62e9b0bf07"
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Simulator model and optimizer/scheduler loaded checkpoint Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/states/130.state\n",
            "loaded: 2024-07-11-21-52-48-pre-comit, 130\n",
            "npy file saved:/content/Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/gen_answers_A/press_715.npy\n",
            "npy file saved:/content/Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/gen_answers_A/press_709.npy\n",
            "npy file saved:/content/Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/gen_answers_A/press_666.npy\n",
            "npy file saved:/content/Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/gen_answers_A/press_665.npy\n",
            "npy file saved:/content/Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/gen_answers_A/press_679.npy\n",
            "npy file saved:/content/Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/gen_answers_A/press_695.npy\n",
            "npy file saved:/content/Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/gen_answers_A/press_686.npy\n",
            "npy file saved:/content/Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/gen_answers_A/press_705.npy\n",
            "npy file saved:/content/Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/gen_answers_A/press_701.npy\n",
            "npy file saved:/content/Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/gen_answers_A/press_672.npy\n",
            "npy file saved:/content/Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/gen_answers_A/press_697.npy\n",
            "npy file saved:/content/Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/gen_answers_A/press_687.npy\n",
            "npy file saved:/content/Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/gen_answers_A/press_702.npy\n",
            "npy file saved:/content/Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/gen_answers_A/press_660.npy\n",
            "npy file saved:/content/Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/gen_answers_A/press_689.npy\n",
            "npy file saved:/content/Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/gen_answers_A/press_691.npy\n",
            "npy file saved:/content/Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/gen_answers_A/press_704.npy\n",
            "npy file saved:/content/Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/gen_answers_A/press_708.npy\n",
            "npy file saved:/content/Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/gen_answers_A/press_658.npy\n",
            "npy file saved:/content/Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/gen_answers_A/press_718.npy\n",
            "npy file saved:/content/Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/gen_answers_A/press_683.npy\n",
            "npy file saved:/content/Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/gen_answers_A/press_688.npy\n",
            "npy file saved:/content/Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/gen_answers_A/press_667.npy\n",
            "npy file saved:/content/Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/gen_answers_A/press_713.npy\n",
            "npy file saved:/content/Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/gen_answers_A/press_684.npy\n",
            "npy file saved:/content/Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/gen_answers_A/press_711.npy\n",
            "npy file saved:/content/Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/gen_answers_A/press_659.npy\n",
            "npy file saved:/content/Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/gen_answers_A/press_675.npy\n",
            "npy file saved:/content/Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/gen_answers_A/press_692.npy\n",
            "npy file saved:/content/Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/gen_answers_A/press_719.npy\n",
            "npy file saved:/content/Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/gen_answers_A/press_668.npy\n",
            "npy file saved:/content/Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/gen_answers_A/press_717.npy\n",
            "npy file saved:/content/Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/gen_answers_A/press_722.npy\n",
            "npy file saved:/content/Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/gen_answers_A/press_700.npy\n",
            "npy file saved:/content/Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/gen_answers_A/press_693.npy\n",
            "npy file saved:/content/Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/gen_answers_A/press_703.npy\n",
            "npy file saved:/content/Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/gen_answers_A/press_676.npy\n",
            "npy file saved:/content/Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/gen_answers_A/press_681.npy\n",
            "npy file saved:/content/Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/gen_answers_A/press_673.npy\n",
            "npy file saved:/content/Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/gen_answers_A/press_712.npy\n",
            "npy file saved:/content/Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/gen_answers_A/press_721.npy\n",
            "npy file saved:/content/Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/gen_answers_A/press_674.npy\n",
            "npy file saved:/content/Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/gen_answers_A/press_677.npy\n",
            "npy file saved:/content/Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/gen_answers_A/press_710.npy\n",
            "npy file saved:/content/Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/gen_answers_A/press_696.npy\n",
            "npy file saved:/content/Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/gen_answers_A/press_664.npy\n",
            "npy file saved:/content/Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/gen_answers_A/press_663.npy\n",
            "npy file saved:/content/Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/gen_answers_A/press_662.npy\n",
            "npy file saved:/content/Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/gen_answers_A/press_690.npy\n",
            "npy file saved:/content/Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/gen_answers_A/press_678.npy\n",
            "Generating answer completed completed in 15.85 seconds\n"
          ]
        }
      ],
      "source": [
        "import sys\n",
        "import os\n",
        "import torch\n",
        "from NN.Model_importer.Importer import FVGN\n",
        "from dataset.Load_mesh import DatasetFactory\n",
        "from utils import get_param\n",
        "import time\n",
        "from utils.get_param import get_hyperparam\n",
        "from utils.Logger import Logger\n",
        "from utils.losses import LpLoss\n",
        "import random\n",
        "import datetime\n",
        "\n",
        "# configurate parameters\n",
        "params = get_param.params(\n",
        "    f\"Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/states\"\n",
        ")\n",
        "params.load_date_time = \"2024-07-11-21-52-48-pre-comit\"\n",
        "params.load_index = \"130\"\n",
        "params.on_gpu = 0\n",
        "\n",
        "random.seed(int(datetime.datetime.now().timestamp()))\n",
        "torch.manual_seed(int(datetime.datetime.now().timestamp()))\n",
        "torch.cuda.set_per_process_memory_fraction(0.99, params.on_gpu)\n",
        "device = torch.device(\"cuda\" if torch.cuda.is_available() else \"cpu\")\n",
        "\n",
        "# initialize Logger and load model / optimizer if according parameters were given\n",
        "logger = Logger(\n",
        "    get_hyperparam(params),\n",
        "    datetime=params.load_date_time,\n",
        "    use_csv=False,\n",
        "    use_tensorboard=False,\n",
        "    copy_code=False,\n",
        ")\n",
        "\n",
        "# initialize Training Dataset\n",
        "datasets_factory = DatasetFactory(\n",
        "    params=params,\n",
        "    device=device,\n",
        "    split=\"test\",\n",
        ")\n",
        "\n",
        "# create dataset objetc\n",
        "test_dataset, test_loader, test_sampler = datasets_factory.create_testset(\n",
        "    batch_size=1,\n",
        "    num_workers=0,\n",
        "    pin_memory=False,\n",
        "    persistent_workers=False,\n",
        "    valid_num=50,\n",
        ")\n",
        "\n",
        "# initialize fluid model\n",
        "model = FVGN(params)\n",
        "\n",
        "fluid_model = model.to(device)\n",
        "fluid_model.eval()\n",
        "\n",
        "params.load_date_time, params.load_index = logger.load_state(\n",
        "    model=fluid_model,\n",
        "    optimizer=None,\n",
        "    scheduler=None,\n",
        "    datetime=params.load_date_time,\n",
        "    index=params.load_index,\n",
        "    device=device,\n",
        ")\n",
        "params.load_index = params.load_index\n",
        "print(f\"loaded: {params.load_date_time}, {params.load_index}\")\n",
        "\n",
        "params.load_index = 0 if params.load_index is None else params.load_index\n",
        "\n",
        "lp_loss = LpLoss(size_average=True)\n",
        "\n",
        "# 初始化用于收集整个数据集的残差的张量\n",
        "epoc_loss = 0\n",
        "\n",
        "test_loss = 0\n",
        "\n",
        "start = time.time()\n",
        "with torch.no_grad():\n",
        "\n",
        "    epoc_val_loss = 0\n",
        "\n",
        "    for batch_index, (\n",
        "        graph_node,\n",
        "        graph_edge,\n",
        "        graph_cell,\n",
        "    ) in enumerate(test_loader):\n",
        "\n",
        "        (graph_node, graph_edge, graph_cell) = test_dataset.datapreprocessing(\n",
        "            graph_node.cuda(),\n",
        "            graph_edge.cuda(),\n",
        "            graph_cell.cuda(),\n",
        "            is_training=False,\n",
        "        )\n",
        "\n",
        "        pred_node_valid = fluid_model(\n",
        "            graph_node=graph_node,\n",
        "            graph_edge=graph_edge,\n",
        "            graph_cell=graph_cell,\n",
        "            is_training=False,\n",
        "            params=params,\n",
        "        )\n",
        "\n",
        "        reversed_node_press = (\n",
        "            (pred_node_valid - 1e-8) * test_dataset.physics_info[\"pressure_min_std\"][1]\n",
        "        ) + test_dataset.physics_info[\"pressure_min_std\"][0]\n",
        "\n",
        "        logger.save_test_results(\n",
        "            value=reversed_node_press.cpu().detach().squeeze().numpy(),\n",
        "            num_id=\"\".join(\n",
        "                        [\n",
        "                            chr(ascii_code)\n",
        "                            for ascii_code in graph_node.origin_id.cpu().tolist()\n",
        "                        ]\n",
        "                            ),\n",
        "        )\n",
        "\n",
        "\n",
        "print(f\"Generating answer completed completed in {time.time() - start:.2f} seconds\")\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 7,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "_R4ymI9BcKYb",
        "outputId": "1b11e77e-2ec5-497d-c2f2-2318cb540f6f"
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Files from /content/Logger/net GM; hs 128;/2024-07-11-21-52-48-pre-comit/gen_answers_A have been compressed into /content/B_Results.zip\n"
          ]
        }
      ],
      "source": [
        "import os\n",
        "import zipfile\n",
        "\n",
        "# 获取要压缩的目录路径\n",
        "dir_to_zip = f\"{logger.saving_path}/gen_answers_A\"\n",
        "# 设置压缩包的名称和路径\n",
        "zip_filename = \"B_Results.zip\"\n",
        "current_directory = os.getcwd()\n",
        "zip_filepath = os.path.join(current_directory, zip_filename)\n",
        "\n",
        "# 创建压缩包\n",
        "with zipfile.ZipFile(zip_filepath, 'w', zipfile.ZIP_DEFLATED) as zipf:\n",
        "    for root, dirs, files in os.walk(dir_to_zip):\n",
        "        for file in files:\n",
        "            # 创建文件的完整路径\n",
        "            file_path = os.path.join(root, file)\n",
        "            # 将文件写入压缩包，并保持文件在压缩包中的相对路径\n",
        "            zipf.write(file_path, os.path.relpath(file_path, dir_to_zip))\n",
        "\n",
        "print(f\"Files from {dir_to_zip} have been compressed into {zip_filepath}\")\n"
      ]
    }
  ],
  "metadata": {
    "accelerator": "GPU",
    "colab": {
      "gpuType": "T4",
      "machine_shape": "hm",
      "provenance": []
    },
    "kernelspec": {
      "display_name": "Python 3",
      "name": "python3"
    },
    "language_info": {
      "codemirror_mode": {
        "name": "ipython",
        "version": 3
      },
      "file_extension": ".py",
      "mimetype": "text/x-python",
      "name": "python",
      "nbconvert_exporter": "python",
      "pygments_lexer": "ipython3",
      "version": "3.10.14"
    }
  },
  "nbformat": 4,
  "nbformat_minor": 0
}